import Vue from 'vue' //引入vue
import Router from 'vue-router' //引入vue-router
import HelloWorld from '@/components/HelloWorld' //引入根目录下的HelloWorld组建

import Lyy from '@/components/lyy'
import Lyyp1 from '@/components/Lyyp1'
import Lyyp2 from '@/components/Lyyp2'

import lyymenu from '@/components/Menu' //左侧菜单
import lyymain from '@/components/Main' //主界面
import lyymain2 from '@/components/Main2'

import params from '@/components/Params'

import Error from '@/components/Error'

Vue.use(Router) //vue 全局使用router

export default new Router({
    routes: [ // 配置路由，一个数组
        { // 每个链接都是一个对象
            path: '/', // 链接路径
            name: 'HelloWorld', //路由名称
            //component: HelloWorld //对于的组件模板
            components: {
                default: HelloWorld,
                left: lyymenu,
                right: lyymain
            },
            //填个小坑： 别名请不要用在path为’/’中，如下代码的别名是不起作用的
            alias: 'gotolyy'
        }, {
            path: '/params/:id/:name', //使用正则来规定 传入的参数类型: d+ 是数字
            //注意!!!! 当是单个的时候 component不能加s
            component: params,
            // 在index.js 只能写beforeEnter 不能写 beforLeave
            beforeEnter: (to, from, next) => {
                console.log('我现在在params');
                console.log(to);
                console.log(from);
                //next(); //跳转, 等同于 next(true)
                //如果使next(false) 则不进行跳转
                //可以传入地址 next({path:'/'})
                next({ path: '/' });
            }
        }, { // 每个链接都是一个对象
            path: '/control', // 链接路径
            name: 'control', //路由名称
            //component: HelloWorld //对于的组件模板
            components: {
                default: HelloWorld,
                left: lyymenu,
                right: lyymain2
            }
        }, {
            path: '/lyy',
            name: 'Lyy',
            component: Lyy, // 这个 component 也要有，不然会出不来内容
            children: [
                { path: '/', name: "Lyy/p", component: Lyy },
                { path: 'p1', name: "p1", component: Lyyp1 }, //警告：  注意 path 里面不要带 /  这个是个坑
                { path: 'p2', name: "p2", component: Lyyp2 },
            ]
        },
        { //重定向
            path: '/goLyy',
            redirect: 'lyy'
        },
        { //带参数的重定向
            path: '/goparams/:id(\\d+)/:name',
            redirect: '/params/:id(\\d+)/:name'
        }, {
            //alias 别名
            path: '/gomyname',
            component: Lyy,
            alias: 'liyy'
        }, {
            path: '*',
            component: Error
        }
    ]
})